[PHP] Trouver la taille d’un swf (flash)
10 08 2011Comment trouver la taille d’une animation flash (fichier .swf) ?
Voici une fonction PHP bien pratique qui permet d’extraire les dimensions d’un .swf :
/* * Récupération de la taille d'un flash : utilisation de getimagesize pour flash 5- * Décompression LZW puis extraction de la taille pour un flash 6+ **/ function getFlashSize($filename){ $image_info = @getimagesize($filename); if(!$image_info){ $zd = gzopen($filename,'r'); $contents = gzread($zd, filesize($filename)); gzclose($zd); $image_string = swfDecompress($contents); $tempHandle = fopen('_temp.swf','w'); fwrite($tempHandle, $image_string); fclose($tempHandle); $image_info = getimagesize('_temp.swf'); unlink('_temp.swf'); } return $image_info; } /* * Décompression d'un flash version 6+ **/ function swfDecompress($buffer){ if( function_exists('gzuncompress') && substr($buffer, 0, 3) == "CWS" && ord(substr($buffer, 3, 1)) >= 6 ){ $output = 'F'; $output .= substr ($buffer, 1, 7); $output .= gzuncompress(substr($buffer, 8)); return $output; } else { return $buffer; } }
Elle vous retournera un tableau de ce style :
Array ( [0] => 468 [1] => 60 [2] => 4 [3] => width="468" height="60" [mime] => application/x-shockwave-flash )
L’index 0 correspond à la largeur, et l’index 1 donne la hauteur.
Enjoy
Super Génial.
Ca a marché du premier coup.